#pragma once 
#include <vector>
#include <map>

namespace ai
{

	struct AIValue
	{
		enum type_t
		{
			TypeNull,
			TypeFloat,
			TypeInt,
			TypePointer,
			TypeBool
		} type;

		union value_t
		{
			float fValue;
			int iValue;
			void* pValue;
			bool bValue;
		} value;

		AIValue() {}
		AIValue(type_t t);
		AIValue(int i);
		AIValue(float f);
		AIValue(void* p);
		AIValue(bool b);

		static const AIValue Null;
	};

	namespace types
	{
		class AIType
		{

		};

		class AIInt
		{

		};

		class AIFloat
		{

		};

		class AIString
		{

		};
	}
	
};